#ifndef INPUTGESTUREBASIC_H_INCLUDED
#define INPUTGESTUREBASIC_H_INCLUDED

#include "OscReceivedElements.h"
#include "InputGesture.h"
#include "TEvent.h"
#include "tuioApp.h"

namespace tuio
{

class TeventBasicUnPaquet : public TTEvent < TeventBasicUnPaquet >
{

    public:

};


class InputGestureBasic : public InputGesture
{
    public:
        virtual void ReceiveCall(const char * addr, osc::ReceivedMessageArgumentStream & args)
        {
            TeventBasicUnPaquet* evt = new TeventBasicUnPaquet();
            events.push_back(evt);
        }

};

template <class Base>
class CanBasic : public Base
{
    public:
    //Interficie
    virtual void unpaquetnou(){}

    TEventHandler(TeventBasicUnPaquet)
    {
        //evt
        //TeventBasicUnPaquet* e = static_cast<TeventBasicUnPaquet>(evt);

        unpaquetnou();
    }

    CanBasic()
    {
        TRegistraCallback(CanBasic, TeventBasicUnPaquet);
        registerMeToInputGestureManager(Singleton<InputGestureBasic>::get());
    }


    //always needed
    eventprocessorsType& getEP()
    {

        return Base::getEP();
    }

};

}



#endif // INPUTGESTUREBASIC_H_INCLUDED
